home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: MegaDisc
/
MegaDisc 33 (1993-04)(MegaDisc Digital Publishing)(AU)(Disk 2 of 2).zip
/
MegaDisc 33 (1993-04)(MegaDisc Digital Publishing)(AU)(Disk 2 of 2).adf
/
Reviews
/
DICE_V2.07
/
DICE_V2.07
Wrap
Text File
|
1993-04-14
|
4KB
|
84 lines
DICE 2.07.54R (25th Jan 1993 release)
by Peter Thompson
|| 33 ||| 33 ||| 33 ||| 33 ||| 33 ||| 33 ||| 33 ||| 33 ||| 33 ||| 33 ||
Three C Choices
If you want to program in C on the Amiga, you have three choices. You can
find one of the P.D. C compilers in the Megadisc library, and install
that; you can spend several hundred dollars on a commercial compiler; or
you can get DICE for US$50, and obtain US$50 off its commercial release
(if and when this occurs).
In the meantime. you have an ANSI C compiler with special extensions for
the Amiga; for example, you can use the _chip qualifier to force an object
(e.g. an array of pre-initialised bitmap data) to be placed in chip ram.
It also has a few features that allow easier porting of Un*x programs; for
instance, special link libraries that use Un*x path conventions and a
special compiler option that recognises a common (but non-ANSI) idiom for
declaring global variables.
Workbench 1.3 and 2.x header files are included. Workbench 3.0 header
files and libraries are not yet included, but there is an entry in the
Makefile for 3.0 libraries; I assume that eventually they'll be there. I
don't feel any real sense of urgency, as I'm still running 1.3.
This release has been much improved from the one I got when I registered;
about two dozen bugs are now missing from the compiler, and DMake has gone
from 0.2? beta to 2.1, and now works much much better. It also now comes
set up on floppies with a special file system instead of compressed in
several LARGE lha archives. The file system is a handler that decompresses
and compresses files on the fly; it fitted about 1.4Mb onto the 880k boot
disk, enough to let you run DICE from a single floppy (albeit slowly).
Now that I have 2.5Mb I don't really need to worry about such things, so
I've set up a disk with several lha archives containing header files and
different flavours of link library, along with an initialisation script.
This allows me to store all the interesting documentation (powerpacked),
uncompressed some utilities and all compiler binaries, all 1.3 and 2.0
header files, 1.3 and 2.0 link libraries (these compress down to about
10-20% of original size), and several versions of the c and math libraries
(30-40% original size) on a single floppy.
I make the compiler and DMake resident (about 265k) for speed and
convenience; I haven't had any crashes yet, even though I'm using Ares and
the ARP shell. Loading everything (all 1.3 and standard headers, compiler,
and a c.lib and m.lib) takes about 750k, and about another 200k is used
while compiling. 1 Mb users would have trouble with using this particular
setup; however, it is quite possible to run the whole thing from a pair of
floppies, as I used to do. I have compiled two programs (cjpeg and djpeg)
totalling about 550k of source code and 100k of executable code entirely in
memory; that was about at the limit, particularly with 100k of 2.0
libraries and DirWork running.
The compilation speed is not fast enough for me, but as fast as I expect
from an A500. I've used minicomputer compilers with longer compilation
times; admittedly, there were 60 other people using the same computer, and
it did optimise much better, but those are minor details. Besides, the use
of pre-compiled header files is a nice trick that cuts down the time it
takes to compile really large programs. If I could be bothered, I would
create a header file amiga.h that includes all system header files, use the
compiler option for creating precompiled header files, and just #include
"amiga.h" whenever I wanted to use an OS structure.
Code speed seems reasonable, although I haven't had anything to compare it
with; I haven't seen any major inefficiencies when looking at executable
files with the disassembler. DICE tries to put variables in registers for
speed according to usage, and seems to do a fairly good job.
In summary; it's not as good as a commercial compiler, but for US$50 with
a free update, it's good enough to compile programs with.
|| 33 ||| 33 ||| 33 ||| 33 ||| 33 ||| 33 ||| 33 ||| 33 ||| 33 ||| 33 ||